Visual examination of mass spectrometry data is necessary to assess data quality and to facilitate data exploration. Graphics provide the means to evaluate spectral properties, test alternative peptide/protein sequence matches, prepare annotated spectra for publication, and fine-tune parameters during wet lab procedures. Visual inspection of LC-MS data is hindered by proteomics visualization software designed for particular workflows (e.g. bottom-up or top-down analyses; support for ThermoFisher raw files or XML-based, etc.) or vendor specific tools without open-source code. We built PSpecteR, an open-source and interactive R Shiny web application to address these issues, with support for several steps of proteomics data processing, including: reading various mass spectrometry files, running open-source database search engines, labelling spectra with fragmentation patterns, testing post-translational modifications, plotting where identified fragments map to reference sequences, and visualizing algorithmic output and metadata. All figures, tables, and spectra are exportable within one easy-to-use graphical user interface. Our current software provides a flexible and modern R framework to support fast implementation of additional features. The open-source code is readily available (https://github.com/EMSL-Computing/PSpecteR), and a PSpecteR Docker container (https://hub.docker.com/r/emslcomputing/pspecter) is available for easy local installation.
PSpecteR is comprised of three Docker containers: one for the Shiny app architecture, and two for the peptide database search tools MS-GF+ and MSPathFinderT. These containers share a mounted volume (data) for all file inputs and outputs (black arrows). The Shiny app container communicates with the other containers to start the database searches and return their status (blue arrows).
The MS-GF+ and MSPathFinder containers are built as python flask apps with a redis server in the background and managed by celery tasks. PSpecteR constructs the URL calls to pass parameters and files to the other containers, and then the URL to check the task id of the current running jobs.
We suggest downloading Docker Desktop at https://www.docker.com/products/docker-desktop.
Create a directory called PSpecteR_Launch. Enter the folder and add a directory called data and copy the Docker-Compose file from https://github.com/EMSL-Computing/PSpecteR/tree/master/pspecter_container/DockerComposeFiles/ForDockerHub.
For MacOS Terminal:
mkdir PSpecteR_Launch; cd PSpecteR_Launch; mkdir data; wget https://raw.githubusercontent.com/EMSL-Computing/PSpecteR/master/pspecter_container/DockerComposeFiles/ForDockerHub/docker-compose.yml
For Windows Powershell:
mkdir PSpecteR_Launch; cd PSpecteR_Launch; mkdir data; wget https://raw.githubusercontent.com/EMSL-Computing/PSpecteR/master/pspecter_container/DockerComposeFiles/ForDockerHub/docker-compose.yml -Outfile docker-compose.yml
For MacOS Terminal & Windows Powershell:
docker pull emslcomputing/pspecter:1.0.0; docker pull emslcomputing/msgf:1.0; docker pull emslcomputing/mspathfindert:1.0
$env:PSPECTER_DATA = "."; docker-compose up -d
to create the initial network and containers. More details on this issue can be found here: https://github.com/microsoft/WSL/issues/4387
For MacOS Terminal:
export PSPECTER_DATA=$PWD; docker-compose up
For Windows Powershell:
$env:PSPECTER_DATA = "."; docker-compose up
This is how to start the app in Docker Desktop:
This page allows the user to upload:
A required mass spectrometry file (MS): mzML, mzXML, or Thermo Fisher raw
An optional protein ID file (ID): mzid
An optional protein database file (FA): fasta
You may also choose the test files at the bottom of the “Upload Data” page.
Click a dropdown menu to set the output directory or upload an MS, ID, or FA file.
Use the “Search Folders” button to select a file,
or type in an acceptable file path, which will give a check mark for a correct path
or a red X for an incorrect path. Click “Use Path” to load the file, or “Clear Path” to
remove it. When typing in a MS file path, if the ID and FA file paths have the same
name, directory, and correct extention, they will autofill.